package main

func main() {

}

func isValidSudoku(board [][]byte) bool {
	rows := [9][9]bool{}   //行 第i行是否有j(0-8对应1-9)
	cols := [9][9]bool{}   //列 第i列是否有j(0-8对应1-9)
	groups := [9][9]bool{} //列 第i块是否有j(0-8对应1-9)
	for i := 0; i < 9; i++ {
		for j := 0; j < 9; j++ {
			c := board[i][j]
			if c != '.' {
				index := c - '1'         //字符c在rows cols groups的位置
				groupNo := 3*(i/3) + j/3 //i,j反映到第groupNo块
				if rows[i][index] || cols[j][index] || groups[groupNo][index] {
					return false
				}
				rows[i][index] = true
				cols[j][index] = true
				groups[groupNo][index] = true
			}
		}
	}
	return true
}
